package com.composite.demo1.abs;

/**
 * 组件：为叶节点和组合节点提供一个共同的接口，因为有些方法只对组合有意义，有些方法只对叶节点有意义，默认实现是抛出异常，这样如果不需要支持某个操作，
 * 就不需要做任何事情
 * 
 * @author dell
 * 
 */
public abstract class MenuComponent {

	/**
	 * 组合方法：添加组合组件
	 * 
	 * @param menuComponent
	 */
	public void add(MenuComponent menuComponent) {
		throw new UnsupportedOperationException();
	}

	/**
	 * 组合方法：删除组合组件
	 * 
	 * @param menuComponent
	 */
	public void remove(MenuComponent menuComponent) {
		throw new UnsupportedOperationException();
	}

	/**
	 * 组合方法：获得组合组件
	 * 
	 * @param menuComponent
	 */
	public MenuComponent getChild(int i) {
		throw new UnsupportedOperationException();
	}

	public String getName() {
		throw new UnsupportedOperationException();
	}

	public String getDescription() {
		throw new UnsupportedOperationException();
	}

	public double getPrice() {
		throw new UnsupportedOperationException();
	}

	public boolean isVegetarian() {
		throw new UnsupportedOperationException();
	}

	public void print() {
		throw new UnsupportedOperationException();
	}

}
